1. Field of the Invention
The present invention relates to communication processing apparatuses, data communication systems, and communication processing methods. More specifically, the present invention relates to a communication processing apparatus, a data communication system, and a communication processing method that allow appropriate bitrate control in transmission and reception of streaming data.
2. Description of the Related Art
Recently, data communications are actively being carried out over the Internet. Also, home networks that allow communications among devices connected via networks at homes, such as household electric appliances, computers, and peripheral devices, are becoming common. A home network allows, for example, transmission and reception of content among devices connected via a network. This is convenient and comfortable for users, so that home networks will become even more common.
In a type of data distribution that is called streaming or data streaming, image data held by a server is transmitted to a client via a network and the client plays back the image data while receiving the image data. A server that executes such streaming data distribution is referred to as a streaming server, and a client that receives data from the streaming server is referred to as a streaming client. The streaming server executes data processing such as encoding to generate data to transmit, and outputs the data to the network. The streaming client temporarily accumulates received data in a buffer, and sequentially decodes and plays back the data.
In many cases, a communication protocol called the Real Time Transport Protocol (RTP) is used in data streaming. Basically, RTP does not support retransmission control. That is, RTP is a protocol like the User Datagram Protocol (UDP), which does not define measures against packet loss or assurance of transmission time. Since retransmission is not executed even in case of a packet loss, delays due to retransmission do not occur. Thus, RTP is a protocol suitable for real-time playback.
In communications based on RTP, for example, a transmission rate is controlled according to the RTP Control Protocol (RTCP). For example, according to a method disclosed in Japanese Unexamined Patent Application Publication No. 2002-204278, an apparatus at a data receiving end reports a packet loss rate or the like to an apparatus at a data transmitting end in a receiver report (RR) packet of RTCP. This allows the apparatus at the data transmitting end to estimate the status of data transmission and to control the transmission rate.
In streaming distribution, it is desirable to distribute data at an optimal transmission rate. For example, according to a scheme disclosed in Japanese Unexamined Patent Application Publication No. 2004-297565, a data transmitting apparatus and a data receiving apparatus measure an upstream transmission rate and a downstream transmission rate, and a rate controlling apparatus exercises control so that data is transmitted and received at a smaller one of the rates measured, so that data can be transmitted stably.
An advantage of the streaming distribution based on RTP described above is that playback is not delayed since retransmission is not executed even in case of a packet loss. However, in order to improve data quality, it is desirable that a client receive complete data. Furthermore, when content distributed is encrypted content, loss of a data portion could prohibit decryption and therefore playback of content at the client. In the case of such content, a protocol that does not support retransmission control, such as RTP, is not suitable.
When the integrity of transferred data is desirable, a transport protocol that defines measures against packet loss, such as the Transmission Control Protocol (TCP), is used. A scheme of distribution of image data based on TCP is described, for example, in Japanese Unexamined Patent Application Publication No. 2005-005823.
Communications based on a transport protocol such as TCP are carried out on a best-effort basis. When streaming of multimedia data is carried out, variation in a communication bandwidth of best-effort communications poses a series problem. This problem is particularly apparent, for example, in the case of TCP. According to TCP, although loss of data does not occur, the arrival time of data is delayed when the communication bandwidth decreases. In streaming based on TCP, the delay in the data arrival time tends to cause video or audio interrupts when congestion occurs. In order to overcome this problem, usually, when a streaming server distributes data, the bitrate of data transmitted is increased or decreased in accordance with variation in the communication bandwidth. The method of increasing or decreasing a bitrate of multimedia data including video data or the like considerably affects the quality of data streaming.
It has hitherto been the case for a streaming server to determine whether to increase or decrease a bitrate of distributed data mainly on the basis of information supplied from a client. For example, information regarding the amount of data accumulated in an application buffer of the client is used. However, calculation of the amount of data accumulated in the application buffer of the client does not necessarily suffice to prevent transmitting data at a bitrate that is higher than a bitrate allowed by the network bandwidth. When data is transmitted at a bitrate higher than a bitrate allowed by the network bandwidth, congestion occurs. Thus, multimedia data does not arrive at the client as desired, and this causes an underrun of data accumulated in the application buffer of the client. This raises the possibility of audio or video interrupts.
Furthermore, according to the method based on information supplied from the client, it is not possible to quickly adapt to variation in the communication bandwidth. For example, when the communication bandwidth between the streaming server and the streaming client is decreased abruptly due to occurrence of other traffic or the like, the playback of data transmitted is not interrupted if the streaming server decreases the bitrate of data transmitted as soon as the communication bandwidth decreases. However, when information supplied from the client is used as in the case described above, the amount of data accumulated in the client buffer decreases when a certain time has elapsed since the decrease in the communication bandwidth. Thus, it takes some time for the server to recognize the decrease in the amount of buffer data, so that it is not possible for the server to adapt immediately to the decrease in the communication bandwidth. Thus, an underrun of the client buffer occurs before the server decreases the bitrate or takes other appropriate measures. This causes video or audio interrupts.